#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int DLDataType;
typedef struct DListNode
{
	DLDataType a;
	struct DListNode* prev;
	struct DListNode* next;
}DLNode;


DLNode* DLInit();
void DLDestroy(DLNode* phead);

DLNode* BuyDLNode(DLDataType x);
void DLPrint(DLNode* phead);

void DLPushBack(DLNode*phead, DLDataType x);
void DLPushFront(DLNode* phead, DLDataType x);
void DLPopBack(DLNode* phead);
void DLPopBack(DLNode* phead);
void DLInsert(DLNode* phead, DLNode* pos, DLDataType x);
void DLInsertAfter(DLNode* pos, DLDataType x);
void DLErase(DLNode* pos);
DLNode* DLFind(DLNode* phead, DLDataType x);
